256. 取得request的header

WHY

這幾天在GKE幫人架srs origin+edge +zlm ,
然後到有沒有來源IP的header可供使用,
我記得有,但忘記名稱,
現在只有兩條路 ,一條是自己寫個後端回傳header的服務。
另一個就是找別人寫好的,還好有找到(我就記得我看過),
不然真的要自己寫了。

Solution

有請, Httpbin
要參考用哪些path的話,可以先到官方文件看一下。

我就直接掛載成deploy和service了。

apiVersion: v1
kind: Namespace
metadata:
  name: xff
  labels:
    istio-injection: enabled
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpbin
  namespace: xff
  labels:
    group: srs
    app: httpbin
spec:
  replicas: 1
  revisionHistoryLimit: 5
  progressDeadlineSeconds: 30
  selector:
    matchLabels:
      group: srs
      app: httpbin
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        group: srs
        app: httpbin
    spec:
      containers:
        - name: srs
          image: kennethreitz/httpbin
          imagePullPolicy: IfNotPresent # IfNotPresent, Always, Never
          ports:
            - name: http-web
              containerPort: 80
              protocol: TCP
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
  name: httpbin
  namespace: xff
spec:
  type: LoadBalancer
  selector:
    group: srs
    app: httpbin
  ports:
    - name: http-web
      protocol: TCP
      port: 80
      targetPort: 80
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80  

然後,cloudflare掛ip,開啟proxy。
用自己的電腦呼叫自己設定的domain。

curl -X Get https://video-httpbin.abc.com/get

256-fig.1.png

這樣就看得到headers裡面的 Cf-Connecting-Ip 就是來源IP。